import api from '@/api'
import util from '../util.js'
import Cookies from 'js-cookie'
import Vue from 'vue'

const actions = {
    // /**
    //  * 获取登录信息actions
    //  * @param {*} params username password type 1学生 2教职工
    //  */
    // async userlogin({commit}, params) {
    //     let loginInfo = await api.login(params)
    //     return loginInfo
    // },
    /**
     * 登录
     * @param {Vm} Vm vue对象
     * @param {stirng} key_id
     * @param {string | number} type 1学生 2教职工
     */
    async login({ state }, params) {
        // 设置环境
        Vue.prototype.environment = util.judeEnv()
        console.log(params.Vm.environment)
        if (params.Vm.environment.isFengChao) {
            // 调用JS-API登录
            await params.Vm.$cjc.apiLogin({
                appKey: '0000',
                success: (data) => { // 执行成功回调
                    params.Vm.$cjc.cjcLog('getlogin success' + data)
                },
                fail: (data) => { // 执行失败回调 只要是失败 不论是执行失败还是返回值是失败都会进fail
                    params.Vm.$cjc.cjcLog('getlogin fail' + data)
                }
            })
            params.Vm.$cjc.hiddenNavigation()
            let userInfo = await params.Vm.$cjc.apiGetUserInfor()
            return userInfo
        } else if (params.Vm.environment.isXXMH) {
            // 获取RSA用以标识从信息门户进入
            let RSA = Cookies.get('combStr')
            let userInfo = await params.Vm.$store.dispatch('getUserInfoByRSA', {
                combStr: RSA
            })
            return userInfo.data
        } else {
            alert('请将客户端升级至最新版~')
        }
    },
    /**
     * 获取上线轮播图
     */
    async getShufflingImg() {
        let shufflingImgList = await api.getShufflingImg()
        return shufflingImgList
    },
    /**
     * 获取全部课程分类
     */
    async getAllCategories() {
        let allCategories = await api.getAllCategories()
        return allCategories
    },
    /**
     * 获取全部课程列表
     */
    async getAllCourse({commit}, params) {
        let allCourse = await api.getAllCourse(params)
        return allCourse
    },
    /**
     * 依据课程分类搜索课程
     * @param {课程分类名称, 页数， 每页显示页数} params
     */
    async getCourseByCategory({commit}, params) {
        let courseByCategory = await api.getCourseByCategory(params)
        return courseByCategory
    },
    /**
     * 保存用户信息
     * @param {用户信息} params
     */
    async saveUserInfo({commit}, params) {
        let saveUserInfo = await api.saveUserInfo(params)
        console.log('enter save--', params)
        return saveUserInfo
    },
    /**
     * 查看是否订阅
     * @param {请求对象} {"mpId": "900025604","userId": "100006672"}
     */
    async isSubscrible({ commit }, params) {
        let subscribeStatus = await api.isSubscrible(params)
        return subscribeStatus
    },
    /**
     * 获取订阅号文章
     * @param {函数名称} getSubscribleArticle
     * @param {请求对象} {pageNum, pageSize}
     */
    async getSubscribleArticle({commit}, params) {
        let articleList = await api.getSubscribleArticle(params)
        return articleList
    },
    /**
     * 订阅公众号
     * @param {函数名称} subscrible
     * @param {请求对象} {"mpId": "900025604","userId": "100006672"}
     */
    async subscrible({commit}, params) {
        let subscribleInfo = await api.subscrible(params)
        return subscribleInfo
    },
    /**
     * 取消订阅公众号
     * @param {函数名称} unSubscrible
     * @param {请求对象} {"mpId": "900025604","userId": "100006672"}
     */
    async unSubscrible({commit}, params) {
        let unSubscribleInfo = await api.unSubscrible(params)
        return unSubscribleInfo
    },
    /**
     * 通过RSA获取用户信息
     * @param {} combStr
     */
    async getUserInfoByRSA({ commit }, params) {
        let userInfo = await api.getUserInfoByRSA(params)
        return userInfo
    }
}

export default actions
